A Service Oriented Architecture (SOA) framework may provide patterns for design, development, deployment and management of a loosely coupled business application infrastructure. In this framework, business functionality may be published, discovered, and consumed as part of a business system of network and reusable technical and business services. In computing, the term SOA may express a perspective of software architecture that defines the use of loose coupled software services to support the requirements of the business processes and software users. In an SOA environment, resources on a network may be made available as independent services that can be accessed without knowledge of their underlying platform implementation.
A common challenge faced using the SOA framework is the management of services and data. SOA-based environments can include many services which exchange messages to perform tasks. Depending on the design, a single application may generate millions of messages. Managing and providing information on how services interact may be a complicated task. Another challenge may be providing appropriate levels of security. Applications which consume services, particularly those external to company firewalls, may be more visible to external parties than traditional proprietary applications. The flexibility and reach of SOA may compromise security. Also, SOA may not guarantee reduced IT costs, improved systems agility or faster time to market. Successful SOA implementations may only realize some or all of these benefits depending on the quality and relevance of the system architecture and design.